Урок 9 – Логический тип данных

Прежде чем изучать структурные операторы, нам необходимо изучить тип данных, о котором мы уже упоминали – это логический тип. Как вы помните типы данных бывают простые и сложные (структурные), прям как и операторы, и к простым относятся: целые числа, вещественные числа, символы и логический тип.

У логического типа есть только два значения – это true (т.е. истина) и false (т.е. ложь).

Давайте Создадим новый файл и именем logicalType.

Далее создадим переменную с именем logical.

Чтобы указать что данная переменная будет хранить логический тип данных, надо написать boolean.

Так как логический тип также называют Булевский тип данных (в честь ученого Джорджа Буля занимавшегося математикой и логикой).

Далее набираем третий раздел и давайте сразу выведем значение logical, не присваивая ему ничего, чтобы посмотреть какое у него значение по умолчанию.

Как видите, по умолчанию идет значение false.

Давайте изменил значение на true.

Мы также можем использовать логические знаки операций, чтобы в итоге получить true или false. Логические операции также называют операциями отношений. Их всего 7:

= Равно

<> Не равно

> Больше

< Меньше

>= Больше либо равно

<= Меньше либо равно

in Принадлежность

Давайте их по порядку рассмотрим. Знак равно проверяет, равняется ли первый операнд второму, например мы можем написать так.

Так как 5 равно 5 то в итогу мы получим true. А если мы напишем так:

То получим false. Если мы заменим знак “=” на “<>”, то снова получим true.

Со знаками больше или меньше думаю все понятно, а вот “>=” и “<=” давайте разберем. Например напишем так:

В данной ситуации если 5 меньше или равно 7, то значение будет True, если нет, то false. 5 равно 7? Нет. А 5 меньше 7? Да! Значит значение будет true.

Про знак “in” мы поговорим позже, когда изучим множественный тип данных (он относится к структурным типам).

Также мы можем помимо логический операций отношений использовать вместе с ними арифметические знаки операций. Например так:

У логических операций отношений приоритет выполнения самый низкий. Т.е. сперва выполняется знак “+”, а потом уже знак “=”. Дополним наш список приоритетов логическими операциями отношений:

  1. Унарные операции: +, -, not
  2. Бинарные операции: *, /, div, mod, and, shl, shr
  3. Бинарные операции: +, -, or, xor
  4. Операции отношений: =, <>, <, >, <=, >=, in

Чаще всего с логическими операциями используют знаки not, and, or или xor. Как именно практически это используются вы увидите на следующем уроке, пока мы рассмотрим это в теории.

Давайте рассмотрим каждый знак по отдельности. Если мы применим знак not к true, то получим обратное значение false.

Когда мы применяем знак and, то как мы помним and относится к бинарным знакам, значит должно быть два логических операнда.

А почему почему при выражении true and false мы получаем false? Для этого надо просто вспомнить правила сравнения знака and:

1 and 1 = 1

1 and 0 = 0

0 and 1 = 0

0 and 0 = 0

Здесь true будет эквивалентно 1, false 0. Теперь перепишем это правило сравнение для логических значений:

true and true = true

true and false = false

false and true = false

false and false = false

Т.е. при знаке операции and (также его называют логическим “и”), чтобы получить true, оба операнда (или условия) должны быть true. Все остальное дает false.

А что если мы запишем так:

Так как 5>3 оно даст true, а 7<9 тоже даст true. В итоге получается true and true и мы в итоге должны получить true. Нажимаем выполнить.

Да, у нас вышла ошибка. Дело в том что, как я уже говорил, существует приоритет знаков операций, и знак and более приоритетный чем знаки отношений < или >.

Получается сперва выполнится 3 and 7, мы получим значение 3, и в итоге у нас получается такая запись 5>3<9, а так писать нельзя, чтобы было 2 знака отношений и три операнда.

Исправить эту проблему легко, надо просто воспользоваться скобками.

Благодаря скобкам сперва выполнятся действия в скобках, а потом уже знак операции and, и вы увидите такой результат.

Теперь нам осталось рассмотреть знаки or и xor. Вспоминаем их правила отношений и делаем выводы.

1 or 1 = 1

1 or 0 = 1

0 or 1 = 1

0 or 0 = 0

а значит:

true or true = true

true or false = true

false or true = true

false or false = false

Т.е. при знаке операции or если хотя бы один операнд является true, то в итоге получится true.

1 xor 1 = 0

1 xor 0 = 1

0 xor 1 = 1

0 xor 0 = 0

значит:

true xor true = false

true xor false = true

false xor true = true

false xor false = false

Т.е. при знаке операции xor мы получим true только если один из операндов равен true, другой false.

На этом данный урок заканчивается. Мы, конечно, рассмотрели логический тип только в теории, но на следующем уроке вы увидите как их применяют на практике.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *